package pe.com.bbva.efcap.servidor.modelo.entidad;

import java.io.Serializable;
import javax.persistence.*;

import java.sql.Timestamp;
import java.math.BigDecimal;
import java.util.List;


/**
 * The persistent class for the TEF011_PARAM_GEN database table.
 * 
 */
@Entity
@Table(name="TEF011_PARAM_GEN")
public class ParametroGeneral implements Serializable {
	private static final long serialVersionUID = 1L;
	private long idParametro;
	private Timestamp fechaActualizacion;
	private Timestamp fechaCreacion;
	private String nombreCorto;
	private String nombreLargo;
	private BigDecimal valorEntero;
	private BigDecimal estado;
	private String usuarioActualizacion;
	private String usuarioCreacion;
	private String valorCadena;
	private List<EstadoFinaciero> estadoFinancieros1;
	private List<EstadoFinaciero> estadoFinancieros2;
	private List<Indicador> indicadors1;
	private List<Indicador> indicadors2;
	private List<Indicador> indicadors3;
	private List<DeudaInstitucionFinanciera> deudaInstitucionFinancieras;
	private List<Comentario> comentarios;
	private ParametroGeneral parametroGeneral;
	private List<ParametroGeneral> parametroGenerals;
	private List<DetalleParametroGeneral> parametroGeneralEscenarios;
	private List<DetalleParametroGeneral> parametroGeneralPeriodos;

	public ParametroGeneral() {
	}


	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_PARAM_GEN")
	@SequenceGenerator(sequenceName="SQ_PARAM_GEN", name = "SQ_PARAM_GEN", allocationSize = 0)	
	@Column(name="CD_PARAMETRO")
	public long getIdParametro() {
		return this.idParametro;
	}

	public void setIdParametro(long idParametro) {
		this.idParametro = idParametro;
	}


	@Column(name="FH_ACTUALIZACION")
	public Timestamp getFechaActualizacion() {
		return this.fechaActualizacion;
	}

	public void setFechaActualizacion(Timestamp fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}


	@Column(name="FH_CREACION")
	public Timestamp getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Timestamp fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}


	@Column(name="NB_NOMBRE_CORTO")
	public String getNombreCorto() {
		return this.nombreCorto;
	}

	public void setNombreCorto(String nombreCorto) {
		this.nombreCorto = nombreCorto;
	}


	@Column(name="NB_NOMBRE_LARGO")
	public String getNombreLargo() {
		return this.nombreLargo;
	}

	public void setNombreLargo(String nombreLargo) {
		this.nombreLargo = nombreLargo;
	}


	@Column(name="NU_VALOR_INT")
	public BigDecimal getValorEntero() {
		return this.valorEntero;
	}

	public void setValorEntero(BigDecimal valorEntero) {
		this.valorEntero = valorEntero;
	}


	@Column(name="ST_ESTADO")
	public BigDecimal getEstado() {
		return this.estado;
	}

	public void setEstado(BigDecimal estado) {
		this.estado = estado;
	}


	@Column(name="TX_USU_ACTUALIZAC")
	public String getUsuarioActualizacion() {
		return this.usuarioActualizacion;
	}

	public void setUsuarioActualizacion(String usuarioActualizacion) {
		this.usuarioActualizacion = usuarioActualizacion;
	}


	@Column(name="TX_USU_CREACION")
	public String getUsuarioCreacion() {
		return this.usuarioCreacion;
	}

	public void setUsuarioCreacion(String usuarioCreacion) {
		this.usuarioCreacion = usuarioCreacion;
	}


	@Column(name="TX_VALOR_STRING")
	public String getValorCadena() {
		return this.valorCadena;
	}

	public void setValorCadena(String valorCadena) {
		this.valorCadena = valorCadena;
	}


	//bi-directional many-to-one association to EstadoFinanciero
	@OneToMany(mappedBy="estadoEstadoFinaciero")
	public List<EstadoFinaciero> getEstadoFinancieros1() {
		return this.estadoFinancieros1;
	}

	public void setEstadoFinancieros1(List<EstadoFinaciero> estadoFinancieros1) {
		this.estadoFinancieros1 = estadoFinancieros1;
	}

	public EstadoFinaciero addEstadoFinancieros1(EstadoFinaciero estadoFinancieros1) {
		getEstadoFinancieros1().add(estadoFinancieros1);
		estadoFinancieros1.setEstadoEstadoFinaciero(this);

		return estadoFinancieros1;
	}

	public EstadoFinaciero removeEstadoFinancieros1(EstadoFinaciero estadoFinancieros1) {
		getEstadoFinancieros1().remove(estadoFinancieros1);
		estadoFinancieros1.setEstadoEstadoFinaciero(null);

		return estadoFinancieros1;
	}


	//bi-directional many-to-one association to EstadoFinanciero
	@OneToMany(mappedBy="tipoEstadoFinaciero")
	public List<EstadoFinaciero> getEstadoFinancieros2() {
		return this.estadoFinancieros2;
	}

	public void setEstadoFinancieros2(List<EstadoFinaciero> estadoFinancieros2) {
		this.estadoFinancieros2 = estadoFinancieros2;
	}

	public EstadoFinaciero addEstadoFinancieros2(EstadoFinaciero estadoFinancieros2) {
		getEstadoFinancieros2().add(estadoFinancieros2);
		estadoFinancieros2.setTipoEstadoFinaciero(this);

		return estadoFinancieros2;
	}

	public EstadoFinaciero removeEstadoFinancieros2(EstadoFinaciero estadoFinancieros2) {
		getEstadoFinancieros2().remove(estadoFinancieros2);
		estadoFinancieros2.setTipoEstadoFinaciero(null);

		return estadoFinancieros2;
	}


	//bi-directional many-to-one association to Indicador
	@OneToMany(mappedBy="tipoUnidad")
	public List<Indicador> getIndicadors1() {
		return this.indicadors1;
	}

	public void setIndicadors1(List<Indicador> indicadors1) {
		this.indicadors1 = indicadors1;
	}

	public Indicador addIndicadors1(Indicador indicadors1) {
		getIndicadors1().add(indicadors1);
		indicadors1.setTipoUnidad(this);

		return indicadors1;
	}

	public Indicador removeIndicadors1(Indicador indicadors1) {
		getIndicadors1().remove(indicadors1);
		indicadors1.setTipoUnidad(null);

		return indicadors1;
	}


	//bi-directional many-to-one association to Indicador
	@OneToMany(mappedBy="tipoCatalogo")
	public List<Indicador> getIndicadors2() {
		return this.indicadors2;
	}

	public void setIndicadors2(List<Indicador> indicadors2) {
		this.indicadors2 = indicadors2;
	}

	public Indicador addIndicadors2(Indicador indicadors2) {
		getIndicadors2().add(indicadors2);
		indicadors2.setTipoCatalogo(this);

		return indicadors2;
	}

	public Indicador removeIndicadors2(Indicador indicadors2) {
		getIndicadors2().remove(indicadors2);
		indicadors2.setTipoCatalogo(null);

		return indicadors2;
	}


	//bi-directional many-to-one association to Indicador
	@OneToMany(mappedBy="tipoTipo")
	public List<Indicador> getIndicadors3() {
		return this.indicadors3;
	}

	public void setIndicadors3(List<Indicador> indicadors3) {
		this.indicadors3 = indicadors3;
	}

	public Indicador addIndicadors3(Indicador indicadors3) {
		getIndicadors3().add(indicadors3);
		indicadors3.setTipoTipo(this);

		return indicadors3;
	}

	public Indicador removeIndicadors3(Indicador indicadors3) {
		getIndicadors3().remove(indicadors3);
		indicadors3.setTipoTipo(null);

		return indicadors3;
	}


	//bi-directional many-to-one association to DeudaIf
	@OneToMany(mappedBy="parametroGeneral")
	public List<DeudaInstitucionFinanciera> getDeudaInstitucionFinancieras() {
		return this.deudaInstitucionFinancieras;
	}

	public void setDeudaInstitucionFinancieras(List<DeudaInstitucionFinanciera> deudaInstitucionFinancieras) {
		this.deudaInstitucionFinancieras = deudaInstitucionFinancieras;
	}

	public DeudaInstitucionFinanciera addDeudaIf(DeudaInstitucionFinanciera deudaIf) {
		getDeudaInstitucionFinancieras().add(deudaIf);
		deudaIf.setParametroGeneral(this);

		return deudaIf;
	}

	public DeudaInstitucionFinanciera removeDeudaIf(DeudaInstitucionFinanciera deudaIf) {
		getDeudaInstitucionFinancieras().remove(deudaIf);
		deudaIf.setParametroGeneral(null);

		return deudaIf;
	}


	//bi-directional many-to-one association to Comentario
	@OneToMany(mappedBy="parametroGeneral")
	public List<Comentario> getComentarios() {
		return this.comentarios;
	}

	public void setComentarios(List<Comentario> comentarios) {
		this.comentarios = comentarios;
	}

	public Comentario addComentario(Comentario comentario) {
		getComentarios().add(comentario);
		comentario.setParametroGeneral(this);

		return comentario;
	}

	public Comentario removeComentario(Comentario comentario) {
		getComentarios().remove(comentario);
		comentario.setParametroGeneral(null);

		return comentario;
	}


	//bi-directional many-to-one association to ParametroGeneral
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="TP_PARAMETRO")
	public ParametroGeneral getParametroGeneral() {
		return this.parametroGeneral;
	}

	public void setParametroGeneral(ParametroGeneral parametroGeneral) {
		this.parametroGeneral = parametroGeneral;
	}


	//bi-directional many-to-one association to ParametroGeneral
	@OneToMany(mappedBy="parametroGeneral")
	public List<ParametroGeneral> getParametroGenerals() {
		return this.parametroGenerals;
	}

	public void setParametroGenerals(List<ParametroGeneral> parametroGenerals) {
		this.parametroGenerals = parametroGenerals;
	}

	public ParametroGeneral addParametroGeneral(ParametroGeneral parametroGeneral) {
		getParametroGenerals().add(parametroGeneral);
		parametroGeneral.setParametroGeneral(this);

		return parametroGeneral;
	}

	public ParametroGeneral removeParametroGeneral(ParametroGeneral parametroGeneral) {
		getParametroGenerals().remove(parametroGeneral);
		parametroGeneral.setParametroGeneral(null);

		return parametroGeneral;
	}
	

	//bi-directional many-to-one association to ParametroGeneral
	@OneToMany(mappedBy="idEscenario")
	public List<DetalleParametroGeneral> getParametroGeneralEscenarios() {
		return parametroGeneralEscenarios;
	}


	public void setParametroGeneralEscenarios(
			List<DetalleParametroGeneral> parametroGeneralEscenarios) {
		this.parametroGeneralEscenarios = parametroGeneralEscenarios;
	}
	
	
	//bi-directional many-to-one association to ParametroGeneral
	@OneToMany(mappedBy="idPeriodo")
	public List<DetalleParametroGeneral> getParametroGeneralPeriodos() {
		return parametroGeneralPeriodos;
	}


	public void setParametroGeneralPeriodos(
			List<DetalleParametroGeneral> parametroGeneralPeriodos) {
		this.parametroGeneralPeriodos = parametroGeneralPeriodos;
	}


}
